using System;
using System.Runtime.CompilerServices;

namespace Triton.Common
{
	public struct WpfVector2i : IEquatable<WpfVector2i>
	{
		[CompilerGenerated]
		private int int_0;

		[CompilerGenerated]
		private int int_1;

		public int X
		{
			[CompilerGenerated]
			get
			{
				return int_0;
			}
			[CompilerGenerated]
			set
			{
				int_0 = value;
			}
		}

		public int Y
		{
			[CompilerGenerated]
			get
			{
				return int_1;
			}
			[CompilerGenerated]
			set
			{
				int_1 = value;
			}
		}

		public bool Equals(WpfVector2i other)
		{
			return Equals(ref this, ref other);
		}

		public bool Equals(ref WpfVector2i other)
		{
			return Equals(ref this, ref other);
		}

		public static bool Equals(ref WpfVector2i v1, ref WpfVector2i v2)
		{
			if (v1.X == v2.X)
			{
				return v1.Y == v2.Y;
			}
			return false;
		}

		public static bool operator ==(WpfVector2i ls, WpfVector2i rs)
		{
			return Equals(ref ls, ref rs);
		}

		public static bool operator !=(WpfVector2i ls, WpfVector2i rs)
		{
			return !Equals(ref ls, ref rs);
		}

		public override bool Equals(object obj)
		{
			if (obj == null)
			{
				return false;
			}
			try
			{
				return Equals((WpfVector2i)obj);
			}
			catch (InvalidCastException)
			{
				return false;
			}
		}

		public override int GetHashCode()
		{
			return (X.GetHashCode() * 397) ^ Y.GetHashCode();
		}
	}
}
